#!/usr/bin/env python
# -*- coding: UTF-8 -*-
from rest_framework.views import exception_handler
from rest_framework.response import Response
from django.db import DataError


# 注册到django中
def exception_han(exc, context):
    """
    自定义异常函数
    exc:本次发生的异常对象
    context:本次发生异常时的上下文环境信息
    """
    # 先让drf自动处理异常，如果能处理就不用手动处理，如果drf无法处理则需要自己编写处理异常逻辑代码
    response = exception_handler(exc, context)
    if response is None:
        """当前发生的异常drf不能进行处理"""
        if isinstance(exc, ZeroDivisionError):
            response = Response({"detail": "0不能作为除数"})
        if isinstance(exc, DataError):
            response = Response({"detail": "数据库存储异常"})
    return response
